package kr.re.etri.snsenabler.client;


public class CopyOfAuthoringTool {

//	private static AuthoringUiBinder uiBinder = GWT.create(AuthoringUiBinder.class);
//
//	interface AuthoringUiBinder extends UiBinder<Widget, CopyOfAuthoringTool> {
//	}
//
//	private TreeBundle bundle = GWT.create(TreeBundle.class);
//
//	private final Data user;
//	private int autoIncrement;
//	private BorderLayoutContainer container;
//	@UiField ContentPanel socialServicePanel;
//	@UiField ContentPanel printoutPanel;
//	@UiField Tree<SocialServiceTreeData, String> socialServiceTree;
//	@UiField TextButton applyButton;
//	@UiField(provided = true) BorderLayoutData westData = new BorderLayoutData(150);
//	@UiField(provided = true) MarginData centerData = new MarginData();
//	@UiField(provided = true) TreeStore<SocialServiceTreeData> socialServiceTreeStore = new TreeStore<SocialServiceTreeData>(new KeyProvider());
//	private Menu socialServiceTreeContextMenu;
//	private MenuItem propertiesMenuItem;
//
//	public CopyOfAuthoringTool(Data user) {
//		super();
//
//		this.user = user;
//
//		container = (BorderLayoutContainer)uiBinder.createAndBindUi(this);
//		container.setPixelSize(Window.getClientWidth(), Window.getClientHeight());
//
//		westData.setMargins(new Margins(10));
//		centerData.setMargins(new Margins(10, 10, 10, 0));
//
//		SocialServiceTreeData root = getSocialServiceTreeData();
//		for (SocialServiceTreeData child : root.getChildren()) {
//			socialServiceTreeStore.add(child);
//			if (child instanceof ServiceProviderTreeData) {
//				processFolder((ServiceProviderTreeData)child);
//			}
//		}
//
//		socialServiceTree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
//		socialServiceTree.setContextMenu(getSocialServiceTreeContextMenu());
//		socialServiceTree.getStyle().setJointCloseIcon(bundle.plus());
//		socialServiceTree.getStyle().setJointOpenIcon(bundle.minus());
//		socialServiceTree.setIconProvider(createIconProvider());
//		socialServiceTree.addShowContextMenuHandler(new ShowContextMenuEvent.ShowContextMenuHandler() {
//			public void onShowContextMenu(ShowContextMenuEvent event) {
//				SocialServiceTreeData treeData = socialServiceTree.getSelectionModel().getSelectedItem();
//				if (!(treeData instanceof ServiceProviderTreeData)) {
//					event.setCancelled(true);
//				}
//			}
//		});
//
//		applyButton.setText(I18NConstants.C.applyItems());
//	}
//
//	private void processFolder(ServiceProviderTreeData folder) {
//		for (SocialServiceTreeData child : folder.getChildren()) {
//			socialServiceTreeStore.add(folder, child);
//			if (child instanceof ServiceProviderTreeData) {
//				processFolder((ServiceProviderTreeData)child);
//			}
//		}
//	}
//
//	protected SimpleContainer getContainer() {
//		return container;
//	}
//
//	private Menu getSocialServiceTreeContextMenu() {
//		if (socialServiceTreeContextMenu == null) {
//			socialServiceTreeContextMenu = new Menu();
//			socialServiceTreeContextMenu.add(getPropertiesMenuItem());
//		}
//		return socialServiceTreeContextMenu;
//	}
//
//	private MenuItem getPropertiesMenuItem() {
//		if (propertiesMenuItem == null) {
//			propertiesMenuItem = new MenuItem("Properties");
//			propertiesMenuItem.addSelectionHandler(new SelectionHandler<Item>() {
//				public void onSelection(SelectionEvent<Item> event) {
//					ServiceProviderTreeData treeData = (ServiceProviderTreeData)socialServiceTree.getSelectionModel().getSelectedItem();
//					Properties properties = new Properties(treeData);
//					properties.getDialog().show();
//				}
//			});
//		}
//		return propertiesMenuItem;
//	}
//
//	@SuppressWarnings("unchecked")
//	protected SocialServiceTreeData getSocialServiceTreeData() {
//		ServiceProviderTreeData root = new ServiceProviderTreeData(++autoIncrement, null, false);
//		List<SocialServiceTreeData> children = new ArrayList<SocialServiceTreeData>();
//		root.setChildren(children);
//
//		ArrayList<SocialService> socialServices = null;
//		if (user == null) {
//			socialServices = new ArrayList<SocialService>();
//		} else {
//			socialServices = (ArrayList<SocialService>)user.get(UserProperties.SOCIAL_SERVICES);
//		}
//
//		for (int i = 0; i < SocialService.values().length; i++) {
//			SocialService socialService = SocialService.values()[i];
//			ServiceProviderTreeData daum = createFolder(socialService, socialServices.contains(socialService));
//			children.add(daum);
//		}
//
//		return root;
//	}
//
//	private ServiceProviderTreeData createFolder(SocialService socialService, boolean isUsing) {
//		ServiceProviderTreeData data = new ServiceProviderTreeData(++autoIncrement, socialService, isUsing);
//		data.setChildren((List<SocialServiceTreeData>)new ArrayList<SocialServiceTreeData>());
//		return data;
//	}
//
//	private class KeyProvider implements ModelKeyProvider<SocialServiceTreeData> {
//		public String getKey(SocialServiceTreeData item) {
//			return String.valueOf(item.getId());
//		}
//	}
//
//	@UiFactory
//	public ValueProvider<SocialServiceTreeData, String> createValueProvider() {
//		return new ValueProvider<SocialServiceTreeData, String>() {
//
//			@Override
//			public String getValue(SocialServiceTreeData object) {
//				return object.getTitle();
//			}
//
//			@Override
//			public void setValue(SocialServiceTreeData object, String value) {
//			}
//
//			@Override
//			public String getPath() {
//				return "name";
//			}
//		};
//	}
//
//	private IconProvider<SocialServiceTreeData> createIconProvider() {
//		return new IconProvider<SocialServiceTreeData>() {
//			public ImageResource getIcon(SocialServiceTreeData model) {
//				SocialService socialService = model.getSocialService();
//				if (model.isUsing()) {
//					switch (socialService) {
//						case Daum:
//							return bundle.daum();
//						case Naver:
//							return bundle.naver();
//						case Twitter:
//							return bundle.twitter();
//						case Facebook:
//							return bundle.facebook();
//						default:
//							break;
//					}
//				} else {
//					switch (socialService) {
//						case Daum:
//							return bundle.daum_gray();
//						case Naver:
//							return bundle.naver_gray();
//						case Twitter:
//							return bundle.twitter_gray();
//						case Facebook:
//							return bundle.facebook_gray();
//						default:
//							break;
//					}
//				}
//				return null;
//			}
//		};
//	}
//
//	public interface TreeBundle extends ClientBundle {
//		ImageResource plus();
//
//		ImageResource minus();
//
//		ImageResource daum();
//
//		ImageResource naver();
//
//		ImageResource twitter();
//
//		ImageResource facebook();
//
//		ImageResource daum_gray();
//
//		ImageResource naver_gray();
//
//		ImageResource twitter_gray();
//
//		ImageResource facebook_gray();
//	}
}
